1. Field of Invention
The present invention relates generally to the field of content delivery over a network. More particularly, the present invention is in one exemplary aspect related to apparatus and methods for the detection of capacity (e.g.,. bandwidth) constraints, delivery of requested content, and notification of content availability, latency, or other operational considerations.
2. Description of Related Technology
In digital television, video and audio information is encoded into digital data, often represented and transmitted as one or more streams of packets.
MPEG-2 is a standard for digital video used in terrestrial, cable, and satellite transmission of television signals. Using MPEG-2, standard-definition (SD) television programming can be transmitted in acceptable quality using a bit rate of 3 to 4 Mbit/s (megabits per second).
In the United States, digital television programming is transmitted in cable television systems using carrier signals with a 6 MHz nominal bandwidth. Depending on the modulation scheme employed, a digital carrier occupying 6 MHz bandwidth can carry a variable number of standard definition television channels (typically greater than 1). For example, using a 256 QAM modulation scheme, an information rate of approximately 38.8 Mbit/s can be achieved in a carrier that fits in a 6-MHz portion of the spectrum. Even for high-definition (HD) television services, a 38.8 Mbit/s carrier typically can carrier 2 services in the same carrier.
To facilitate multiplexing multiple services into the same digital carrier, (variable-length) packets of digital video and audio data may be encapsulated in fixed-length packets. MPEG-2 provides such a multiplexing mechanism.
An MPEG-2 transport stream consists of a sequence of 188-byte (fixed-length) packets, which may belong to multiple constituent packet streams that are multiplexed together to form the transport stream. Packets in an MPEG-2 transport stream that belongs to the same constituent stream are identified by a common identifier in the header portion of the packets. Such an identifier is called a “program identifier”, or PID, in MPEG-2 terminology.
Unused packets that do not belong to any of the constituent streams in an MPEG-2 transport stream are called “null packets”. In MPEG-2, null packets are identifiable by a special PID value (0x1FFF, i.e. hexadecimal 1FFF).
In the context of MPEG-2, for example, a transport stream may in general carry multiple programs or services. Each program or service may in turn be composed of multiple constituent streams of packets, each of which having a common PID.
As is practiced today, cable television systems typically transmit MPEG-2 transport streams on a one-transport-stream-per-radio-frequency-carrier basis.
In a typical cable television system, programming content is received from programming providers at a central facility (e.g., a headend), typically via satellite transmission or other such modality. The received programming is processed (which may include, among others, a combination of: decryption, add/drop remultiplexing, and re-encryption) and then retransmitted, via a distribution network, to a population of subscribers.
Modern cable television systems often have a hybrid fiber-coax (HFC) architecture. In such a system, signals from the headend are transmitted to fiber nodes (a.k.a. optical nodes) on a fiber optic network. The fiber nodes are distributed throughout the geographic area served by the cable system. In some HFC systems, there are intermediate-level facilities called distribution hubs.
At a fiber node, signals received from a hub or the headend over the optical network are converted into electrical signals. The electrical signals are distributed to the subscribers in the area served by the fiber node over a coaxial cable network, possibly with splitting and re-amplification.
Within the area served by a fiber node, the available analog bandwidth in the coaxial cable network is shared by all the subscribers served by the fiber node. The signals transmitted to different fiber nodes in general need not be identical.
In earlier cable television systems (especially before the late 1990s), it was common for carrier signals of all services to be transmitted to all subscriber locations, regardless of whether individual subscribers are authorized to receive particular services, or whether any subscriber is actually viewing a particular service. This arrangement is acceptable where it is likely that the same signals are needed by many subscribers, such as in broadcast and pre-scheduled pay-per-view services.
However, cable systems, especially the coaxial cable portions of them, have a limited bandwidth. There is a limit on the number of audio/video/data streams that can be transmitted simultaneously to, or through, a particular part of the network.
With video-on-demand (VOD) type services, transmitting all signals to all subscriber locations becomes problematic. In VOD, individual subscribers may start, stop, pause, forward, rewind a program at arbitrary and unpredictable times. This necessitates the creation of a separate video/audio/data stream for each subscriber.
With VOD and individualized streams, it may be advantageous, from a resource management point of view, to transmit individualized streams only to relevant portions of the network. This may be implemented by limiting the transmission of a signal only to the fiber node(s) that actually need it. The goal is to increase the number of video/audio/data streams and individualized sessions supportable using a given amount of bandwidth.
In recent broadcast switched architectures (BSA), a signal is transmitted to a portion of a cable system (e.g. a fiber node or a subscriber location) only if some subscriber is receiving it. This may mean that, at least for some services, bandwidth is dynamically allocated from one or more carriers when service/content is requested.
An advantage of BSA is that the total number of services that can be offered can exceed a cable system's ability to transmit the services simultaneously to a particular portion of the system (say a fiber node). For example, if a cable system allocates, for broadcast services, enough bandwidth to deliver 500 services simultaneously, BSA can allow more than 500 broadcast services to be offered using the same allocation, so long as, on a per fiber node basis, the total number of requested broadcast streams at any time stays within the limit.
A potential issue with this arrangement is that, depending on subscriber request patterns, it is possible that sometimes service requests cannot be fulfilled because the resulting bandwidth requirement would exceed the available bandwidth. This may happen for example when there are too many simultaneous VOD sessions. This may also happen when the number of distinct broadcast or other services requested exceeds the bandwidth allocation.
In prior art systems, when a service request cannot be fulfilled because of resource unavailability, the request may simply be denied, which may result in significant subscriber frustration. This is especially true since the user is given no meaningful information as to the reason for the unavailability of the requested content, or when the requested content will be available if ever. The user must then either decide not to obtain (e.g., watch) the content, or keep trying back at subsequent times to see if the content is available. This latter approach is highly inefficient for the user from a time perspective, and also frustrates any planning by the user around watching or using the content.
Accordingly, what is needed are improved apparatus and methods which provide the user with cogent and timely information relating to the availability (or non-availability) of requested content. Ideally, such information would be available in real-time (e.g., substantially at the time of request), and would allow the user to plan their subsequent activities relating to the content without having to guess or repetitively request the same content. Alternatively, where the information is not immediately available, the user could at least be assured of notification (whatever they may be doing) when the content does become available.
Such improved apparatus and methods would also ideally allow the user to program or control the delivery of content at a time suitable to their needs. It would further provide flexibility as to the delivery paradigm used (e.g., streaming in “real time”, download/playback, etc.).